/*
题目描述：
为了充分发挥Gpu算力，
需要尽可能多的将任务交给GPU执行，
现在有一个任务数组，
数组元素表示在这1s内新增的任务个数，
且每秒都有新增任务，
假设GPU最多一次执行n个任务，
一次执行耗时1s，
在保证Gpu不空闲的情况下，最少需要多长时间执行完成。

输入描述
第一个参数为gpu最多执行的任务个数
取值范围1~10000
第二个参数为任务数组的长度
取值范围1~10000
第三个参数为任务数组
数字范围1~10000

输出描述
执行完所有任务需要多少秒

示例一
输入

3
5
1 2 3 4 5

输出

6

说明
一次最多执行3个任务，最少耗时6s

示例二
输入

4
5
5 4 1 1 1

输出

5

说明
一次最多执行4个任务，最少耗时5s
 */
const test = (input) => {
    let inputArr = input.split('\n')
    let [m, n, task] = inputArr
    m = parseInt(m)
    n = parseInt(n)
    let arr = task.split(' ').map(t => parseInt(t)).slice(0, n)
    console.log(m, n, arr)

    let stack = []
    let _run = (arr) => {
        let first = arr[0]
        let last = arr.length > 1 ? arr.slice(1) : []
        if (first <= m) {
            stack.push(first)

        } else {
            stack.push(m)
            if (last.length > 0) {
                last[0] += first - m
            } else {
                last[0] = first - m
            }
        }
        // console.log(first, last, stack)
        if (last.length > 0) {
            _run(last)
        }

    }
    _run(arr)
    console.log(stack)
    let result = stack.length
    console.log(result)



}
test(`3
5
1 2 3 4 5`)
test(`4
5
5 4 1 1 1`)